#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include "../inc/admin.h"
#include "../inc/data.h"
#include "../inc/flight_node.h"
#include "../inc/general.h"
#include "../inc/login.h"
#include "../inc/my_flight_node.h"
#include "../inc/myInfo.h"
#include "../inc/user_node.h"
#include "../inc/user.h"
#include "../inc/file_IO.h"

// 打印登录菜单函数
void printf_login_menu()
{
    clearScreen();
    printf("             欢迎来到航班管理系统           \n");
    printf("----------------------------------------------\n");
    printf("| 1、登录\t\t\t             |\t\t\t\t");
    printf("账号:admin  密码:123\n");

    printf("| 2、注册\t\t\t             |\t\t\t\t");
    printf("账号:user   密码:123\n");
    // printf("| 1、登录\t\t\t             |\n");
    // printf("| 2、注册\t\t\t             |\n");
    printf("| 0、退出\t\t\t             |\n");
    printf("----------------------------------------------\n");
    printf("请输入相应的序号选择:");
}

// 执行登录菜单
int menuOperate_login(int menu)
{
    clearChar();
    clearScreen();
    switch (menu)
    {
    case LOGIN:
        return login(user_headNode);
    case ENROLL:
        enroll(user_headNode);
        break;
    case EXIT_SYSTEM:
        printf("退出成功!");
        exit(0);
    default:
        break;
    }
    return 0;
}

// 打印主菜单函数
void printf_function_menu_user()
{
    clearScreen();
    printf("             航班管理系统---用户端           \n");
    printf("----------------------------------------------\n");
    printf("| 1、航班查找\t\t\t             |\n");
    printf("| 2、我的航班\t\t\t             |\n");
    printf("| 3、我的信息\t\t\t             |\n");
    printf("| 4、退出登录\t\t\t             |\n");
    printf("| 0、退出系统\t\t\t             |\n");
    printf("----------------------------------------------\n");
    printf("请输入相应的序号选择:");
}

// 执行菜单
int menuOperate_user(int menu, int login_flag)
{
    clearChar();
    clearScreen();
    switch (menu)
    {
    case 1:
        flight_Node_p findHead = find_flight_ListBystatus(flight_headNode);
        find_flightInfo(findHead);
        free_flightList(findHead);
        break;
    case 2:
        print_user_flight(myflight_headNode);
        break;
    case 3:
        myInfo(find_userNode(user_headNode, Login_Username));
        break;
    case 4:
        login_flag = 0;
        break;
    case 0:
        printf("退出成功!");
        save_file_flight();
        save_file_my_flight();
        save_file_user();
        exit(0);
    default:
        break;
    }
    return login_flag;
}

// 打印主菜单函数
void printf_function_menu_admin(char *airline_name)
{
    clearScreen();
    printf("         %s-航班管理系统---管理端           \n", airline_name);
    printf("----------------------------------------------\n");
    printf("| 1、航班管理\t\t\t             |\n");
    printf("| 2、退出登录\t\t\t             |\n");
    printf("| 0、退出系统\t\t\t             |\n");
    printf("----------------------------------------------\n");
    printf("请输入相应的序号选择:");
}

// 执行菜单
int menuOperate_admin(int menu, int login_flag)
{
    clearChar();
    clearScreen();
    switch (menu)
    {
    case 1:
        show_allFlight(airline_headNode);
        break;
    case 2:
        login_flag = 0;
        break;
    case 0:
        save_file_flight();
        save_file_my_flight();
        save_file_user();
        printf("退出成功!");
        exit(0);
    default:
        break;
    }
    return login_flag;
}